export const throttle = (fn, durTime = 1500) => {
    let timer = null;
    return function (...args) {
        if (timer) return; // 如果计时器存在，表示函数在等待下次执行，直接返回
        fn.apply(this, args); // 立即执行函数
        timer = setTimeout(() => {
            clearTimeout(timer); // 清除计时器
            timer = null; // 重置计时器标志
        }, durTime);
    };
};

export const debounce = (fn, durTime = 1500) => {
    let timer = null;
    return function (...args) {
        clearTimeout(timer); // 清除之前的延时调用
        timer = setTimeout(() => {
            fn.apply(this, args); // 延时执行函数
        }, durTime);
    };
};


export const once = (fn) => {
    let executed = false;
    return function (...args) {
        if (!executed) {
            executed = true; // 标记函数已执行
            fn.apply(this, args); // 执行函数
        }
    };
};
